Page({
  data: {
    // 主筛选数据
    mainFilters: [
      { id: 'all', name: '全部' },
      { id: 'phase1', name: '一期' },
      { id: 'phase2', name: '二期' }
    ],
    currentMainFilter: 'all',
    
    // 次级筛选数据
    subFilters: [
      { id: 'building', name: '教学楼' },
      { id: 'canteen', name: '饭堂' },
      { id: 'dormitory', name: '宿舍' }
    ],
    currentSubFilter: '教学楼',
    showSubFilter: false,
    
    // 原始卡片数据（全量数据）
    originalCardList: [
    ],
    
    // 显示用的卡片数据
    cardList: []
  },
  

  onLoad: function() {
    // 页面加载时初始化数据
    this.filterCardList();
    // 页面加载时直接调用云函数
    this.building();
  },

  // 调用云函数获取建筑数据
  async building(){
    try {
      this.setData({ loading: true });
      
      const res = await wx.cloud.callFunction({
        name: 'building',
      });
      
      if (res.result && res.result.data) {
        this.setData({
          originalCardList: res.result.data,
          loading: false
        }, () => {
          // 数据获取成功后立即过滤并显示
          this.filterCardList();
        });
      } else {
        throw new Error('未获取到有效数据');
      }
    } catch (error) {
      console.error('云函数调用失败:', error);
      this.setData({ loading: false });
      wx.showToast({
        title: '数据加载失败',
        icon: 'none'
      });
    }
  },

  // 切换主筛选
  changeMainFilter: function(e) {
    const id = e.currentTarget.dataset.id;
    this.setData({
      currentMainFilter: id
    }, () => {
      this.filterCardList();
    });
  },

  // 切换次级筛选
  changeSubFilter: function(e) {
    const id = e.currentTarget.dataset.id;
    const selectedFilter = this.data.subFilters.find(item => item.id === id);
    this.setData({
      currentSubFilter: selectedFilter.name,
      showSubFilter: false
    }, () => {
      this.filterCardList();
    });
  },

  // 显示/隐藏次级筛选菜单
  toggleSubFilter: function() {
    this.setData({
      showSubFilter: !this.data.showSubFilter
    });
  },

  // 根据筛选条件过滤卡片列表
  filterCardList: function() {
    const { currentMainFilter, currentSubFilter, originalCardList, subFilters } = this.data;
    
    // 找到当前次级筛选的id
    const currentSubFilterId = subFilters.find(item => item.name === currentSubFilter).id;
    
    let filteredList = originalCardList.filter(item => {
      // 主筛选条件
      const mainCondition = currentMainFilter === 'all' || item.phase === currentMainFilter;
      // 次级筛选条件
      const subCondition = currentSubFilterId === 'all' || item.type === currentSubFilterId;
      
      return mainCondition && subCondition;
    });
    
    this.setData({
      cardList: filteredList
    });
  },

  // 跳转到详情页
  // navigateToDetail: function(e) {
  //   const id = e.currentTarget.dataset.id;
  //   wx.navigateTo({
  //     url: `/pages/detail/detail?id=${id}`
  //   });
  // },

  // navigateToMap: function(e) {
  //   console.log(e.currentTarget.dataset.item.latitude);
  //   // 先获取当前位置
  //   wx.getLocation({
  //     type: 'gcj02', // 返回国测局坐标
  //     success: (res) => {
  //       const { latitude, longitude } = res;

  //       const destination = e.currentTarget.dataset.item; // 从data中获取目标位置
        
  //       // console.log(latitude);
  //       // 使用微信地图导航
  //       wx.openLocation({
  //         latitude:destination.latitude,
  //         longitude:destination.longitude,
  //         name: destination.name, // 目标名称
  //         address: destination.address, // 详细地址
  //         scale: 5, // 地图缩放级别
  //       });
  //     },
  //     fail: (err) => {
  //       console.error('获取位置失败', err);
  //       wx.showToast({
  //         title: '获取位置失败',
  //         icon: 'none'
  //       });
  //     }
  //   });
  // },

  // 页面跳转方法
  navigateTo: function(e) {
    // console.log(e);
    const item = e.currentTarget.dataset.item;
    const url = e.currentTarget.dataset.url;
    if (!url) {
      wx.showToast({
        title: '程序员说：功能开发中',
        icon: 'none'
      });
      return;
    }
    const query = `?id=${item._id}`;
    // console.log(query);
    wx.navigateTo({
      url: url + query
    });
  },

});